Parametric polymorphism
BASIS OF GENERIC PROGRAMMING
Parametric Polymorphism; Rank-n polymorphism; Impredicative polymorphism; Predicative polymorphism; Rank n polymorphism; First class polymorphism; First-class polymorphism; Higher-ranked polymorphism; Higher-ranked type; Higher ranked type; Higher rank type; Higher-rank type; Rank2Types; RankNTypes; Rank (type theory); Type arguments; Bounded parametric polymorphism
In programming languages and type theory, parametric polymorphism allows a single piece of code to be given a "generic" type, using variables in place of actual types, and then instantiated with particular types as needed. Parametrically polymorphic functions and data types are sometimes called generic functions and generic datatypes, respectively, and they form the basis of generic programming.